package cn.saas.jingtandata;

import java.util.HashMap;
import java.util.Map;

/**
 * 全局单位类别
 */
public class FusionUnitType {
    /**
     * 自定义权限
     */
    public static class ConstantPermission {
        /**
         * GPS坐标广播权限
         */
        public static String GPS_LOCATION_PROVIDER = "investigation.permission.GPS_LOCATION_PROVIDER";

    }

    /**
     * 用户信息
     */
    public interface UserInfoTag {
        String UserInfo = "user_tag_info";//用户信息
        String UserGuid = "user_guid";//用户GUID
        String UserCode = "user_code";//用户编码
        String UserName = "user_name";//用户名
        String UserCompID = "user_comp_id";//用户公司ID
        String UserCompName = "user_comp_name";//用户公司名称
        String UserRuleID = "user_rule_id";//商户权限ID
        String UserRuleName = "user_rule_name";//用户权限名称
        // ////////////////////////////////////功能性标记
        String UserRemember = "user_info_remember";//记录账户信息
        String UserPwd = "user_pwd";//用户密码
    }

    /**
     * 数据标记
     */
    public interface DataInfoTag {
        /**
         * 数据信息
         */
        String DataInfo = "data_tag_info";
        // ////////////////////////////////////数据性标记
        /**
         * 基础数据同步时间
         */
        String BaseDataSyncTime = "base_data_sync_time";

        /**
         * 工程当前位置
         */
        String CurrentProjTag = "current_proj_tag";
        /**
         * 工程当前位置--
         */
        String CurrentProjCode = "current_proj_code";
        /**
         *
         */
        String CurrentProjTower = "current_proj_tower";
    }

    /**
     * 接口参数
     */
    public interface HttpInterfaceParams {
        String PARAM_DEVICE_ID = "DeviceID";//登录接口
        String PARAM_USER_ID = "UserID";//用户账户
        String PARAM_PARAMETER = "Parameter";//参数
        String PARAM_USER_NUM = "UserNum";//用户账户
        String PARAM_PASSWORD = "Password";//用户密码
        String PARAM_PROCODE = "ProCode";//工程编号
        String PARAM_PROGUID = "ProGuid";//工程编码
        String PARAM_PROVOLUME = "ProVolume";//卷册号
        String PARAM_PROSTAGE = "ProStage";//工程阶段
        String PARAM_PRONAME = "ProName";//工程名称
        String PARAM_TOWERGUID = "TowerGuid";//订单唯一编码
        String PARAM_HoleGUID = "HoleGuid";//钻孔GUID
        String PARAM_POSTDATA = "PostData";//上传数据
    }

    /**
     * 券券龙接口
     */
    public interface ServiceInterface {
        /**
         * 登录接口
         */
        String loginInterface = "LineProject/ValidateUser.ashx";
        /**
         * 发送验证码接口
         */
        String SendValidateSms = "LineProject/SendValidateSms.ashx";
        /**
         * 校验验证码
         */
        String ValidateSms = "LineProject/ValidateSms.ashx";
        /**
         * 工程组定位接口
         */
        String groupLocationInterface = "LineProject/GetLocation.ashx";
        /**
         * 获取基础数据--岩土属性
         */
        String getBaseRockType = "LineProject/GetBaseRockType.ashx";
        /**
         * 获取岩土知识库
         */
        String getBaseRockCat = "LineProject/GetBaseRockCat.ashx";
        /**
         * 获取地址调查编录信息
         */
        String getBaseSurveyTask = "LineProject/GetBaseSurveyTask.ashx";
        /**
         * 获取外委单位
         */
        String getBaseUnit = "LineProject/GetBaseUnit.ashx";
        /**
         * 获取塔位类型
         */
        String getBaseTowerType = "LineProject/GetBaseTowerType.ashx";
        /**
         * 岩土属性
         */
        String getBaseRockAttrCatType = "LineProject/GetBaseRockAttrCat.ashx";
        /**
         * 获取工程
         */
        String getBizProject = "LineProject/GetBizProject.ashx";
        /**
         * 获取塔位信息
         */
        String getBizTower = "LineProject/GetBizPlanTower.ashx";
        /**
         * 获取塔位状态信息
         */
        String GetBizProTowerState = "LineProject/GetBizProTowerState.ashx";

        /**
         * 获取成果塔
         */
        String getBizTowerAchieve = "LineProject/GetBizTower.ashx";
        /**
         * 获取钻孔数据
         */
        String getBizHoleAchieve = "LineProject/GetBizDrills.ashx";
        /**
         * 根据工程编号获取塔位信息
         */
        String getBizTowerForCode = "LineProject/GetBizPlanTowerForCode.ashx";
        /**
         * 获取钻孔
         */
        String getBizDrill = "LineProject/GetBizPlanDrills.ashx";

        /**
         * 上传塔位信息
         */
        String uploadBizTower = "LineProject/PostBizTower.ashx";
        /**
         * 上传地质点信息
         */
        String uploadBizGeology = "LineProject/PostBizPoint.ashx";
        /**
         * 上传坐标信息
         */
        String uploadBizLoc = "LineProject/PostLocation.ashx";
        /**
         * 文件上传路径
         */
        String uploadBizFile = "LineProject/FileUpload.ashx";
    }

    /**
     * 工程类型
     */
    public interface ProjType {
        int PROJ_TYPE_LINE = 0;//线路工程
        int PROJ_TYPE_NOT_LINE = 0;//非线路工程
    }

    /**
     * 塔位状态
     */
    public interface TowerState {
        int DEFULT = 1;//默认
        int CANCEL = 0;//作废
        int DELETE = 2;//删除
    }

    /**
     * 塔位包含钻孔类型
     */
    public interface TowerContainHoleType {
        int CPT = 1;//默认
        int NOTCPT = 2;//作废
        int ALL = 0;//删除
    }

    /**
     * 地质点状态
     */
    public interface GeologyState {
        int DEFULT = 1;//默认
        int CANCEL = 0;//作废
        int DELETE = 2;//删除
    }

    /**
     * 塔位执行状态
     */
    public interface TowerExecuteState {
        int EXECUTED = 1;//已执行executed-未完成
        int FINISHED = 2;//已经完成
        int NON_EXECUTION = 0;//未执行non-execution
    }

    /**
     * 塔位在线
     */
    public interface TowerOnlineState {
        int NOTDO = 0;//未执行
        int DOING = 1;//执行中
        int DONE = 2;//完成
    }

    /**
     * 附件业务类型
     */
    public interface AnnexBussType {
        int ROUNDTRIP = 0;//回次信息
        int SIGNATURE = 1;//signature
        int GEOLOGY = 2;//未执行non-execution
        int SHARE = 3;//共享文件--针对于工程附件，暂时无此功能
        int TOWER = 4;//塔位
        int HOLE = 5;//钻孔
        int SURVEY = 6;//调查
    }

    /**
     * 附件类型
     */
    public interface AnnexType {
        int NOTER = 0;//记录人
        int CAPTAIN = 1;//机长captain
        int CHECKER = 2;//检查人
        int PICTURE = 3;//图片
        int DRAW = 4;//手绘图
        int RECORD = 5;//录音
        int VIDEO = 6;//视频
    }

    /**
     * 附件上传状态
     */
    public interface AnnexState {
        int STATE_NULL = -1;//空状态
        int STATE_NOR = 0;//当前状态--正常
        int STATE_WAIT_UPLOAD = 1;//等待上传
        int STATE_UPLOAD = 2;//已上传
    }

    /**
     * 塔位桩基
     */
    public interface TowerPile {
        int PILE = 1;//是桩基
        int NO_PILE = 0;//非桩基
    }

    public interface HoleBussType {
        int TOWER = 1;//是桩基
        int GEOLOGY = 2;//非桩基
    }

    /**
     * 钻孔状态
     */
    public interface HoleState {
        int INIT = 0;//初始
        int EXECT = 1;//执行
        int OVER = 2;//完成的值
    }

    public interface HoleSign {
        int NOT = 0;//未签名
        int DONE = 1;//已签名
    }

    /**
     * 钻孔是否删除
     */
    public interface HoleDelState {
        int DELETE = 1;//初始
        int NOR = 0;//执行
    }

    /**
     * 来源信息
     */
    public interface SourceFrom {
        int SERVER_SYNC = 0;//服务端同步
        int LOCAL_CREAT = 1;//本地创建
    }

    /**
     * 是否需要做
     */
    public interface NeedDo {
        int NOT = 0;//服务端同步
        int DO = 1;//v本地创建
    }


    public interface LayerGuess {
        String NOT = "N";//非推测
        String Guess = "Y";//推测
    }

    /**
     * 钻孔
     *
     * @author zoe
     */
    public interface HoleTypeId {
        int HOLE_CPT = 0;//静探
        int HOLE_GENERAL = 1;//一般
        int HOLE_CONTROL = 2;//控制性
    }

    /**
     * 钻孔类型
     */
    public interface HoleType {
        /**
         * 钻孔类型
         */
        Map<String, Integer> HOLE_TYPE_MAP = new HashMap<String, Integer>() {
            /**
             *
             */
            private long serialVersionUID = -4249875650932205815L;

            {
                put(HOLE_TYPE_CPT, HoleTypeId.HOLE_CPT);
                put(HOLE_TYPE_GENERAL, HoleTypeId.HOLE_GENERAL);
                put(HOLE_TYPE_GENERAL_JK, HoleTypeId.HOLE_GENERAL);
                put(HOLE_TYPE_GENERAL_QT, HoleTypeId.HOLE_GENERAL);
                put(HOLE_TYPE_GENERAL_TC, HoleTypeId.HOLE_GENERAL);
                put(HOLE_TYPE_GENERAL_TJ, HoleTypeId.HOLE_GENERAL);
                put(HOLE_TYPE_CONTROL, HoleTypeId.HOLE_CONTROL);
                put(HOLE_TYPE_CONTROL_BG, HoleTypeId.HOLE_CONTROL);
                put(HOLE_TYPE_CONTROL_DT, HoleTypeId.HOLE_CONTROL);
                put(HOLE_TYPE_CONTROL_HY, HoleTypeId.HOLE_CONTROL);
                put(HOLE_TYPE_CONTROL_JK, HoleTypeId.HOLE_CONTROL);
                put(HOLE_TYPE_CONTROL_SZ, HoleTypeId.HOLE_CONTROL);
                put(HOLE_TYPE_CONTROL_TJ, HoleTypeId.HOLE_CONTROL);
            }
        };

        /**
         * 静力触探孔
         */
        String HOLE_TYPE_CPT = "静力触探试验孔";

        /**
         * 一般性钻孔
         */
        String HOLE_TYPE_GENERAL = "一般性钻孔";
        /**
         * 一般性钻孔--一般性探井
         */
        String HOLE_TYPE_GENERAL_TJ = "一般性探井";
        /**
         * 一般性钻孔--一般性井孔
         */
        String HOLE_TYPE_GENERAL_JK = "一般性井孔";
        /**
         * 一般性钻孔--探槽
         */
        String HOLE_TYPE_GENERAL_TC = "探槽";
        /**
         * 一般性钻孔--钎探或轻便触探试验孔
         */
        String HOLE_TYPE_GENERAL_QT = "钎探或轻便触探试验孔";
        /**
         * 控制性钻孔
         */
        String HOLE_TYPE_CONTROL = "控制性钻孔";
        /**
         * 控制性钻孔--标准贯入试验孔
         */
        String HOLE_TYPE_CONTROL_BG = "标准贯入试验孔";
        /**
         * 控制性钻孔--动力触探试验孔
         */
        String HOLE_TYPE_CONTROL_DT = "动力触探试验孔";
        /**
         * 控制性钻孔--控制性探井
         */
        String HOLE_TYPE_CONTROL_TJ = "控制性探井";
        /**
         * 控制性钻孔--控制性井孔
         */
        String HOLE_TYPE_CONTROL_JK = "控制性井孔";
        /**
         * 控制性钻孔--十字板剪力试验孔
         */
        String HOLE_TYPE_CONTROL_SZ = "十字板剪力试验孔";
        /**
         * 控制性钻孔--横压试验孔
         */
        String HOLE_TYPE_CONTROL_HY = "横压试验孔";

    }

    /**
     * 岗位
     */
    public interface Post {
        int POST_NONE = -1;//岗位信息
        int POST_RECORD = 0;//岗位--记录人
        int POST_CHECK = 1;//岗位--检查人
        int POST_CAPTAIN = 2;//岗位--机长
    }

    /**
     * 计划任务状态
     */
    public interface PlanTaskState {
        int STATE_NOR = 0;//岗位信息
        int STATE_EXECUTED = 1;//岗位--记录人
        int STATE_IGNORE = 2;//岗位--检查人
    }

    /**
     * 编辑模式
     */
    public interface EditMode {
        int EDIT_MODE_NEW = 0;//创建
        int EDIT_MODE_EDIT = 1;//修改
    }

    /**
     * 任务修改模式
     */
    public interface TaskEditMode {
        /**
         * 创建
         */
        int EDIT_MODE_NEW = 0;
        /**
         * 修改
         */
        int EDIT_MODE_EDIT = 1;
        /**
         * 回次修改
         */
        int EDIT_MODE_TRIP_EDIT = 2;
    }

    public interface TaskTakeRaodong {
        /**
         * 创建
         */
        int TAKE_RAODONG = 1;
        /**
         * 默认
         */
        int NOT = 0;
    }

    public enum TaskType {
        // 钻进过程--默认深度为1.5米
        NO_TASK("钻进过程", 1, 1.5, "无任务", "", -1),
        // 标贯任-- 默认深度为1.45米
        BIAOGUAN("标贯", 2, 0.45, "标贯", "", 0),
        // 动探任务--默认深度为1.25米
        DONGTAN("动探", 3, 0.3, "动探", "", 2),
        // 取样--默认
        QUYANG("取样", 4, 0.5, "取样", "", 1),
        // 取样--薄壁取样
        QUYANG_BAOBI("取样(薄壁取样器)", 5, 0.5, "取样", "薄壁取样器", 1),
        // 取样--对开取样器
        QUYANG_DUIKAI("取样(对开式取样器)", 6, 0.2, "取样", "厚壁原状", 1),
        // 取样--环刀取样
        QUYANG_HUANDAO("取样(环刀式取样)", 7, 0.2, "取样", "厚壁原状", 1),
        // 取样--扰动
        QUYANG_RAODONG("取样(扰动)", 8, 0.2, "取样", "扰动", 1),
        // 取样--岩石
        QUYANG_YANSHI("取样(岩石)", 9, 0.5, "取样", "岩石", 1),
        // 取样--水样
        QUYANG_SHUIYANG("取样(水样)", 10, 0.5, "取样", "水样", 1),
        // 厚壁原状--用于初始化
        QUYANG_HOUBI("取样(厚壁原状)", 11, 0.5, "取样", "厚壁原状", 1);

        /**
         * 类型名
         */
        private String mTaskName;
        /**
         * 任务简写
         */
        private String mTaskSimpleName;
        /**
         * 特殊类型
         */
        private String mSpecial;
        /**
         * 序号
         */
        private int mIndex;
        /**
         * 任务类型
         */
        private int mType;
        /**
         * 深度
         */
        private double mDepth;

        /**
         * @param task  任务类型
         * @param index 任务序列
         */
        private TaskType(String task, int index, double depth, String taskSim,
                         String special, int type) {
            this.mTaskName = task;
            this.mIndex = index;
            this.mDepth = depth;
            this.mTaskSimpleName = taskSim;
            this.mType = type;
            this.mSpecial = special;
        }

        @Override
        public String toString() {
            return this.mTaskName;
        }

        /**
         * @return 深度
         */
        public double getDepth() {
            return this.mDepth;
        }

        public int getIndex() {
            return this.mIndex;
        }

        public int getType() {
            return this.mType;
        }

        public String getTaskSimpleName() {
            return this.mTaskSimpleName;
        }

        public String getSpecial() {
            return this.mSpecial;
        }
    }

    /**
     * 岩土属性
     */
    public interface SoilAttr {
        /**
         * 等级
         */
        String LEVEL = "等级";
        /**
         * 湿度humidity
         */
        String HUMIDITY = "湿度";
        /**
         * 密度density
         */
        String DENSITY = "密实度";
        /**
         * 状态
         */
        String STATE = "状态";
        /**
         * 颜色
         */
        String COLOR = "颜色";
        /**
         * 成分 Component
         */
        String COMPONENT = "成分";
        /**
         * 包含物 Inclusion
         */
        String INCLUSION = "包含物";
        /**
         * 摇振反应
         */
        String SHAKERESPONSE = "摇振反应";
        /**
         * 干强度 mStrength
         */
        String STRENGTH = "干强度";
        /**
         * 韧性
         */
        String TOUGHNESS = "韧性";
        /**
         * 钻进情况-
         */
        String DRILL_SITUATION = "钻进情况";
        /**
         * 光泽反应--
         */
        String LUSTER_RESPONSE = "光泽反应";
        /**
         * 层理特征-mBeddingFeatures
         */
        String BEDDING_FEATURES = "层理特征";
        /**
         * 风化程度 mDecayRate
         */
        String DECAY_RATE = "风化程度 ";
        /**
         * 胶结程度
         */
        String AGGLUTINATE_DEGREE = "胶结程度";
        /**
         * 矿物成分
         */
        String MINERAL_COMPOSITION = "矿物成分";
        /**
         * 构造
         */
        String CONSTRUCTION = "构造";
        /**
         * 结构
         */
        String STRUCTURE = "结构";
        /**
         * 倾角
         */
        String DIP = "倾角";
        /**
         * 倾向
         */
        String TREND = "倾向";
        /**
         * 节理裂隙发育程度
         */
        String JOINT_FISSURE_DEGREE = "节理裂隙发育程度";
        /**
         * 破碎程度
         */
        String BROKEN_DEGREE = "破碎程度";
        /**
         * 岩层走向
         */
        String TOWARDS = "岩层走向";
        /**
         * 最大粒径
         */
        String MAX_PARTICLE = "最大粒径";
        /**
         * 磨圆度
         */
        String PSEPHICITY = "磨圆度";
        /**
         * 坚固性
         */
        String RUGGEDNESS = "坚固性";
        /**
         * 充填物(成分)
         */
        String FILLING_C = "充填物(成分)";
        /**
         * 充填物(性质)
         */
        String FILLING_X = "充填物(性质)";
        /**
         * 充填物(百分数)
         */
        String FILLING_B = "充填物(百分数)";
        /**
         * 胶结物
         */
        String AGGLUTINATE = "胶结物";
        /**
         * 颗粒级配
         */
        String GRAIN_COMPOSITION = "颗粒级配";
        /**
         * "黏性土含量
         */
        String COHESIVE_CONTENT = "黏性土含量";
        /**
         * 水理性
         */
        String RATIONAL_WATER = "水理性";
        /**
         * 气味
         */
        String SMELL = "气味";
        /**
         * 塑性
         */
        String PLASTICITY = "塑性";
        /**
         * 裂隙
         */
        String FISSURE = "裂隙";
        /**
         * 黄土类型
         */
        String LOESS_TYPE = "黄土类型";
        /**
         * 孔隙发育程度
         */
        String FISSURE_DEGREE = "孔隙发育程度";
        /**
         * 陷穴发育情况
         */
        String SINK_HOLE_DEGREE = "陷穴发育情况";
        /**
         * 堆积方式
         */
        String PACKING_WAY = "堆积方式";
        /**
         * 堆积时间
         */
        String PACKING_TIME = "堆积时间";
        /**
         * 均匀性
         */
        String HOMOGENEITY = "均匀性";
        /**
         * 岩石质量指标
         */
        String FULL_EXTENT = "岩石质量指标";
        /**
         * 描述
         */
        String HARD_EXTENT = "描述";
    }

    /**
     * 文件类型
     */
    public interface FileType {
        /**
         * 文件
         */
        int FILE = 0;
        /**
         * 文件夹
         */
        int FLODER = 1;
        /**
         * sd 卡
         */
        int SDCARD = 2;
    }

    /**
     * 静探孔类型
     */
    public interface CptDeviceType {
        /**
         * 单桥
         */
        int SINGLE = 0;
        /**
         * 双桥
         */
        int DOUBLE = 1;
        /**
         * 多桥
         */
        int MAOR = 2;
    }

    /**
     * 塔位添加状态
     */
    public interface TowerAddState {
        /**
         * 新增
         */
        int TAG_ADD_STATE_NEW = 1;
        /**
         * 更新
         */
        int TAG_ADD_STATE_UPDATE = 2;
        /**
         * 无需变更修改
         */
        int TAG_ADD_STATE_NO = 0;
    }

}
